Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Displaying Raw • Download


nomadnet/ui/TextUI.py 51c9d98e4c86d4793400e4b82d8f1f010f85f0d2 (51c9d98e) Text, 4.64 KB

Tff7b72import T7ee787RNS
Tff7b72import T7ee787importlib
Tff7b72import T7ee787time

Tff7b72import T7ee787nomadnet
Tff7b72from T7ee787nomadnetT7ee787.T7ee787uiT7ee787.T7ee787textui Tff7b72import Tff7b72*
Tff7b72from T7ee787nomadnet Tff7b72import Te6edf3NomadNetworkApp

Te6edf3COLORMODE_MONO Tff7b72= T79c0ff1
Te6edf3COLORMODE_16 Tff7b72= T79c0ff16
Te6edf3COLORMODE_88 Tff7b72= T79c0ff88
Te6edf3COLORMODE_256 Tff7b72= T79c0ff256
Te6edf3COLORMODE_TRUE Tff7b72= T79c0ff2Tff7b72*Tff7b72*T79c0ff24
Te6edf3THEME_DARK Tff7b72= T79c0ff0x01
Te6edf3THEME_LIGHT Tff7b72= T79c0ff0x02

Te6edf3THEMES Tff7b72= Tb4b4b4{
Te6edf3THEME_DARKTb4b4b4: Tb4b4b4[
T8b949e# Style name # 16-color style # Monochrome style # 88, 256 and true-color style
Tb4b4b4(Ta5d6ff'Ta5d6ffheadingTa5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6fflight gray,underlineTa5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6ffdefaultTa5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6ffunderlineTa5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6ffg93,underlineTa5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6ffdefaultTa5d6ff'Tb4b4b4)Tb4b4b4,
Tb4b4b4(Ta5d6ff'Ta5d6ffmenubarTa5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6ffblackTa5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6fflight grayTa5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6ffstandoutTa5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6ff#111Ta5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6ff#bbbTa5d6ff'Tb4b4b4)Tb4b4b4,
Tb4b4b4(Ta5d6ff'Ta5d6ffshortcutbarTa5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6ffblackTa5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6fflight grayTa5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6ffstandoutTa5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6ff#111Ta5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6ff#bbbTa5d6ff'Tb4b4b4)Tb4b4b4,
Tb4b4b4(Ta5d6ff'Ta5d6ffbody_textTa5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6ffwhiteTa5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6ffdefaultTa5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6ffdefaultTa5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6ff#0a0Ta5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6ffdefaultTa5d6ff'Tb4b4b4)Tb4b4b4,
Tb4b4b4(Ta5d6ff'Ta5d6fferror_textTa5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6ffdark redTa5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6ffdefaultTa5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6ffdefaultTa5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6ffdark redTa5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6ffdefaultTa5d6ff'Tb4b4b4)Tb4b4b4,
Tb4b4b4(Ta5d6ff'Ta5d6ffbuttonsTa5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6fflight green,boldTa5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6ffdefaultTa5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6ffdefaultTa5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6ff#00a533Ta5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6ffdefaultTa5d6ff'Tb4b4b4)Tb4b4b4,
Tb4b4b4(Ta5d6ff'Ta5d6ffmsg_editorTa5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6ffblackTa5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6fflight cyanTa5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6ffstandoutTa5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6ff#111Ta5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6ff#0bbTa5d6ff'Tb4b4b4)Tb4b4b4,
Tb4b4b4(Ta5d6ff"Ta5d6ffmsg_header_okTa5d6ff"Tb4b4b4, Ta5d6ff'Ta5d6ffblackTa5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6fflight greenTa5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6ffstandoutTa5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6ff#111Ta5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6ff#6b2Ta5d6ff'Tb4b4b4)Tb4b4b4,
Tb4b4b4(Ta5d6ff"Ta5d6ffmsg_header_cautionTa5d6ff"Tb4b4b4, Ta5d6ff'Ta5d6ffblackTa5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6ffyellowTa5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6ffstandoutTa5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6ff#111Ta5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6ff#fd3Ta5d6ff'Tb4b4b4)Tb4b4b4,
Tb4b4b4(Ta5d6ff"Ta5d6ffmsg_header_sentTa5d6ff"Tb4b4b4, Ta5d6ff'Ta5d6ffblackTa5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6fflight grayTa5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6ffstandoutTa5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6ff#111Ta5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6ff#dddTa5d6ff'Tb4b4b4)Tb4b4b4,
Tb4b4b4(Ta5d6ff"Ta5d6ffmsg_header_deliveredTa5d6ff"Tb4b4b4, Ta5d6ff'Ta5d6ffblackTa5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6fflight blueTa5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6ffstandoutTa5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6ff#111Ta5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6ff#28bTa5d6ff'Tb4b4b4)Tb4b4b4,
Tb4b4b4(Ta5d6ff"Ta5d6ffmsg_header_failedTa5d6ff"Tb4b4b4, Ta5d6ff'Ta5d6ffblackTa5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6ffdark grayTa5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6ffstandoutTa5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6ffblackTa5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6ffdark grayTa5d6ff'Tb4b4b4)Tb4b4b4,
Tb4b4b4(Ta5d6ff"Ta5d6ffmsg_warning_untrustedTa5d6ff"Tb4b4b4, Ta5d6ff'Ta5d6ffblackTa5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6ffdark redTa5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6ffstandoutTa5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6ff#111Ta5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6ffdark redTa5d6ff'Tb4b4b4)Tb4b4b4,
Tb4b4b4(Ta5d6ff"Ta5d6fflist_focusTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffblackTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6fflight grayTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffstandoutTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff#111Ta5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff#bbbTa5d6ff"Tb4b4b4)Tb4b4b4,
Tb4b4b4(Ta5d6ff"Ta5d6fflist_off_focusTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffblackTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffdark grayTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffstandoutTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff#111Ta5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffdark grayTa5d6ff"Tb4b4b4)Tb4b4b4,
Tb4b4b4(Ta5d6ff"Ta5d6fflist_trustedTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6fflight greenTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffdefaultTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffdefaultTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff#6b2Ta5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffdefaultTa5d6ff"Tb4b4b4)Tb4b4b4,
Tb4b4b4(Ta5d6ff"Ta5d6fflist_focus_trustedTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffblackTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6fflight grayTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffstandoutTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff#180Ta5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff#bbbTa5d6ff"Tb4b4b4)Tb4b4b4,
Tb4b4b4(Ta5d6ff"Ta5d6fflist_unknownTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffdark grayTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffdefaultTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffdefaultTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6fflight grayTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffdefaultTa5d6ff"Tb4b4b4)Tb4b4b4,
Tb4b4b4(Ta5d6ff"Ta5d6fflist_untrustedTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffdark redTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffdefaultTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffdefaultTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffdark redTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffdefaultTa5d6ff"Tb4b4b4)Tb4b4b4,
Tb4b4b4(Ta5d6ff"Ta5d6fflist_focus_untrustedTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffblackTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6fflight grayTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffstandoutTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff#810Ta5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff#bbbTa5d6ff"Tb4b4b4)Tb4b4b4,
Tb4b4b4]
Tb4b4b4}

Tff7b72class T56d364TextUITb4b4b4:

Tff7b72def Tff7b72__init__Tb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffapp Tff7b72= Te6edf3NomadNetworkAppTff7b72.Td2a8ffget_shared_instanceTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffui Tff7b72= Tff7b72self
Tff7b72selfTff7b72.Td2a8ffloop Tff7b72= Tff7b72None

Tff7b72if Te6edf3importlibTff7b72.Td2a8ffutilTff7b72.Td2a8fffind_specTb4b4b4(Ta5d6ff"Ta5d6ffurwidTa5d6ff"Tb4b4b4) Tff7b72!= Tff7b72NoneTb4b4b4:
Tff7b72import T7ee787urwid
Tff7b72elseTb4b4b4:
Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Ta5d6ff"Ta5d6ffThe text-mode user interface requires Urwid to be installed on your system.Ta5d6ff"Tb4b4b4, Te6edf3RNSTff7b72.Td2a8ffLOG_ERRORTb4b4b4)
Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Ta5d6ff"Ta5d6ffYou can install it with the command: pip3 install urwidTa5d6ff"Tb4b4b4, Te6edf3RNSTff7b72.Td2a8ffLOG_ERRORTb4b4b4)
Te6edf3nomadnetTff7b72.Td2a8ffpanicTb4b4b4(Tb4b4b4)

Te6edf3urwidTff7b72.Td2a8ffset_encodingTb4b4b4(Ta5d6ff"Ta5d6ffUTF-8Ta5d6ff"Tb4b4b4)

Te6edf3intro_timeout Tff7b72= Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6fftextuiTa5d6ff"Tb4b4b4]Tb4b4b4[Ta5d6ff"Ta5d6ffintro_timeTa5d6ff"Tb4b4b4]
Te6edf3colormode Tff7b72= Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6fftextuiTa5d6ff"Tb4b4b4]Tb4b4b4[Ta5d6ff"Ta5d6ffcolormodeTa5d6ff"Tb4b4b4]
Te6edf3theme Tff7b72= Tff7b72selfTff7b72.Td2a8ffappTff7b72.Td2a8ffconfigTb4b4b4[Ta5d6ff"Ta5d6fftextuiTa5d6ff"Tb4b4b4]Tb4b4b4[Ta5d6ff"Ta5d6ffthemeTa5d6ff"Tb4b4b4]

Te6edf3palette Tff7b72= Te6edf3THEMESTb4b4b4[Te6edf3themeTb4b4b4]

Tff7b72selfTff7b72.Td2a8ffscreen Tff7b72= Te6edf3urwidTff7b72.Td2a8ffraw_displayTff7b72.Td2a8ffScreenTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffscreenTff7b72.Td2a8ffregister_paletteTb4b4b4(Te6edf3paletteTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffmain_display Tff7b72= Te6edf3MainTff7b72.Td2a8ffMainDisplayTb4b4b4(Tff7b72selfTb4b4b4, Tff7b72selfTff7b72.Td2a8ffappTb4b4b4)
Tff7b72if Te6edf3intro_timeout Tff7b72> T79c0ff0Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffintro_display Tff7b72= Te6edf3ExtrasTff7b72.Td2a8ffIntroDisplayTb4b4b4(Tff7b72selfTff7b72.Td2a8ffappTb4b4b4)
Te6edf3initial_widget Tff7b72= Tff7b72selfTff7b72.Td2a8ffintro_displayTff7b72.Td2a8ffwidget
Tff7b72elseTb4b4b4:
Te6edf3initial_widget Tff7b72= Tff7b72selfTff7b72.Td2a8ffmain_displayTff7b72.Td2a8ffwidget

Tff7b72selfTff7b72.Td2a8ffloop Tff7b72= Te6edf3urwidTff7b72.Td2a8ffMainLoopTb4b4b4(Te6edf3initial_widgetTb4b4b4, Te6edf3screenTff7b72=Tff7b72selfTff7b72.Td2a8ffscreenTb4b4b4)

Tff7b72if Te6edf3intro_timeout Tff7b72> T79c0ff0Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffloopTff7b72.Td2a8ffset_alarm_inTb4b4b4(Te6edf3intro_timeoutTb4b4b4, Tff7b72selfTff7b72.Td2a8ffdisplay_mainTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffset_colormodeTb4b4b4(Te6edf3colormodeTb4b4b4)

Tff7b72selfTff7b72.Td2a8ffloopTff7b72.Td2a8ffrunTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ffset_colormodeTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3colormodeTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffscreenTff7b72.Td2a8ffset_terminal_propertiesTb4b4b4(Te6edf3colormodeTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffscreenTff7b72.Td2a8ffreset_default_terminal_paletteTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ffdisplay_mainTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3loopTb4b4b4, Te6edf3user_dataTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffloopTff7b72.Td2a8ffwidget Tff7b72= Tff7b72selfTff7b72.Td2a8ffmain_displayTff7b72.Td2a8ffwidget


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────